/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package RDA;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import javax.swing.Timer;
import org.newdawn.slick.GameContainer;
import org.newdawn.slick.Graphics;
import org.newdawn.slick.Image;
import org.newdawn.slick.SlickException;
import org.newdawn.slick.geom.Rectangle;

/**
 *
 * @author Raúl Delgado & Xavi Pol
 */
public class NaveEnemiga3 extends NaveEnemigaBase{

    boolean enemigo = true;
    Timer timer;
    //aux2 a;
    Disparo disparoNave = null;
    Disparo disparoNave2 = null;
    Disparo disparoNave3 = null;
    Disparo disparo2 = null;
    Disparo disparo3 = null;
    boolean disparando;

    public NaveEnemiga3(float vidaNaveE, float vidaNaveTotalE, Disparo disparo,Disparo disparo2, Disparo disparo3, Image naveE, float x, float y, Image explosionE) {
        super(vidaNaveE, vidaNaveTotalE, disparo, naveE, explosionE);
        super.x = x;
        super.y = y;
        arrayDisparo = new ArrayList<Disparo>();
        this.disparo2 = disparo2;
        this.disparo3 = disparo3;
    }

    @Override
    public void posicion(float x, float y) {
        super.posicion(x, y);
        super.s = new Rectangle(x, y, nave.getWidth(), nave.getHeight());
    }

    @Override
    public void render(GameContainer gc, Graphics g) {
        if(!(super.isDestruido())){
            g.drawImage(nave, x, y);
        }else{
            g.drawImage(explosion, x, y);
        }
        for (Disparo n : arrayDisparo) {
            if (n != null) {
                n.render(gc, g);
            }
        }
    }

    @Override
    public void update(int delta) throws SlickException {
        if (!(destruido)) {
            y += 2;
            s.setLocation(x, y);
            if(y ==-1) disparando = true;
            if (disparando) {
                disparando = false;
                timer = new Timer(300, new ActionListener() {
                    public void actionPerformed(ActionEvent e) {
                        disparoNave = disparo.copiarDisparo();
                        disparoNave.posicion(x + 10, y + 20);
                        disparoNave2 = disparo2.copiarDisparo();
                        disparoNave2.posicion(x + 20, y + 20);
                        disparoNave3 = disparo3.copiarDisparo();
                        disparoNave3.posicion(x + 20, y + 20);
                        arrayDisparo.add(disparoNave);
                        arrayDisparo.add(disparoNave2);
                        arrayDisparo.add(disparoNave3   );
                        if (900 <= getY()) {
                            timer.stop();
                            destruido = true;
                        }
                    }
                });
            }
            timer.start();
        } else {
            x = 1300;
            y = 1300;
        }
        updateDisparo(delta);
    }

    @Override
    public void updateDisparo(int delta) {
        timer.start();
        for (Disparo d : arrayDisparo) {
            if (d != null) {
                d.update(delta);
            }
        }
    }
}

